//#include "DQueue.h"
//
//
////函数声明部分
//void Error(char *s){
//        cout<<s<<endl;
//        exit(1);
//}
///*
///home/pi/Documents/CppStruct/DQueue.cpp|12|error: no match for ‘operator=’ (operand types are ‘DQueueptr {aka DQueuelist}’ and ‘DQueuelist*’)|
//*/
//LinkDQueue Create_DQueuelist(){
//        DQueuelist *pnew;//初始化双段队列
//        LinkDQueue head;
//        head.front = head.rear = (struct DQueuelist *)malloc(LEN);
//        head.front->data=0;
//        head.front->next = NULL;
//        head.rear->next = NULL;
//        int length = 0;
//        int number = 0;
//        cout<<"请输入双段队列长度：";
//        cin>>length;
//        cout<<"请输入双段队列数据";
//        for(int i=0; i<length; i++) {
//                pnew=(struct DQueuelist *)malloc(LEN);
//                if(!pnew) Error("内存分配失败！");
//                cin >> number;
//                pnew->data=number;
//                pnew->next=NULL;
//                head.rear->next = pnew;
//                pnew->prior=head.rear;
//                head.rear=pnew;
//        }
//        return head
//}
//void En_DQueuelist(LinkDQueue &q, int e){
//        //1。表示在端口１入队　２表示在端口２入队
//        int a;
//        DQueuelist *ptr = NULL;
//        DQueuelist * temp = NULL;
//        cout<<"请选择入队端口（默认端口为１和２）";
//        cin >> a;
//        switch(a)
//        {
//                case 1:
//                        ptr = (struct DQueuelist *)malloc(LEN);
//
//                        if(!ptr) Error("内存分配失败");
//
//                        ptr->data = e;
//                        temp=q.front->next;
//                        q.front->next=ptr;
//                        ptr->next=temp;
//                        temp->prior=ptr;
//                        ptr->prior=q.front;
//                        break;
//                case 2:
//                        ptr = (struct DQueuelist *) malloc(LEN);
//
//                        if(!ptr) Error("内存分配失败!");
//                        ptr->data=e;
//                        ptr->next=NULL;
//                        q.rear->next=ptr;
//                        ptr->prior=q.rear;
//                        q.rear=ptr;
//                        break;
//        }
//}
//void De_DQueuelist(LinkDQueue &q, int e){
//        //1. 表示在端口１出队，　２表示在端口２出对
//        int a;
//        cout<<"请输入出队端口（默认端口为１和２）";
//        cin>>a;
//        DQueuelist *ptr = NULL;
//        DQueuelist *temp = NULL;
//        switch(a)
//        {
//        case 1:
//                if(q.front->next == NULL) Error("该队列为空！");
//                ptr = q.front->next;
//                e = ptr->data;
//                cout<<"端口１出队的元素式："<<e<<endl;
//                q.front->next=ptr->next;
//                ptr->next->prior=q.front;
//                if(q.rear == ptr) {
//                        q.rear = q.front;
//                }
//                delete ptr;
//                break;
//        case 2:
//                //端口２出队，直接将最后一个节点删除即可，改变尾指针，不改变头指针
//                if(q.rear==NULL) Error("该队列为空！");
//                ptr = q.rear->prior;
//                temp = q.rear;
//                e = temp->data;
//                cout<<"端口２出队的元素是："<<e<<endl;
//                ptr->next=NULL;
//                q.rear=ptr;
//                if(q.front==ptr) q.front=q.rear;
//                delete temp;
//                break;
//        }
//}
//void Print_DQueuelist(LinkDQueue &q){
//        int e = 0;
//        int n = 0;
//        cout<<"请输入顺序出队端口：";
//        cin>>n;
//        switch(n)
//        {
//                case 1:
//                        //端口１顺序输出，正向输出
//                        while(q.front->next!=NULL)
//                        {
//                                DQueuelist *p = NULL;
//                                p = q.front->next;
//                                e = p->data;
//                                cout<<e<<" ";
//                                q.front->next=p->next;
//                                if(q.rear==p) q.rear=q.front;
//                        }
//                        cout<<endl;
//                case 2:
//                        //端口２顺序输出，逆向输出
//                        while((q.rear!=NULL)&&(q.rear->data!=0))
//                        {
//                                DQueuelist *p = NULL;
//                                DQueuelist *temp = NULL;
//                                p = q.rear->prior;
//                                temp=q.rear;
//                                e = temp->data;
//                                cout<<e<<" ";
//                                p->next = NULL;
//                                q.rear=p;
//                                if(q.front == p) q.rear=q.front;
//                        }
//                        cout<<endl;
//                        break;
//        }
//}
//int Getlength_DQueuelist(LinkDQueue &q){
//        DQueuelist *p = NULL;
//        p = q.front;
//        int length = 0;
//        while(p->next!=NULL)
//        {
//                length++;
//                p=p->next;
//        }
//        return length;
//}
//void Gethead_DQueuelist(LinkeDQueue &q, int e){
//        // 得到双端队列的端口处的元素，并不修改指针头和尾，知识简单的输出而已
//        //１表示得到双段队列端口１的元素，２表示得到双段队列端口２的元素
//        cout<<"请输入出队端口：";
//        int a = 0;
//        cin >> a;
//        switch(a)
//        {
//        case 1:
//                if(q.front->next  == NULL) Error("该队列为空");
//                e = q.front->next->data;
//                cout<<" 端口１的第一个元素 " << e << endl;
//                break;
//        case 2:
//                if(q.rear==NULL) Error("该队列为空！");
//                e = q.rear->data;
//                cout<<" 端口２的第一个元素： "<<e<<endl;
//        }
//}
//void Destroy_DQueuelist(LInkeDQueue &q){
//        while(q.front)
//        {
//                q.rear=q.front->next;
//                delete q.fronh;
//                q.front = q.rear;
//        }
//        cout<<" 该队列销毁成功！ "<<endl;
//}
//
//
//
//void testDQueue(){
//        LinkDQueue Q;
//        Q = Create_DQueuelist();
//        cout << "该双端队列的长度是：" << Getlength_DQueuelist(Q)<<endl;
//        int m = 0;
//        for(int i=0; i<2; i++)
//        {
//                int n = 0;
//                cout << "请输入要入队的元素：" ;
//                cin >> n;
//                En_DQueuelist(Q, n);
//        }
//        cout<<"入队后双端队列的长度是："<<Getlength_DQueuelist(Q)<<endl;
//        for(inthj=0; j<2; j++)
//        {
//                De_DQueuelist();
//        }
//        cout<<"出队后双端队列的长度是："<<Getlength_DQueuelist(Q)<<endl;
//        Print_DQueuelist(Q);
//        Destroy_DQueuelist(Q);
//}
